﻿using ServerApp.Cache;
using ServerApp.DAO;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YServer;

namespace ServerApp.Biz
{
    public class AccountBiz
    {

        public AccountCache accache = CacheFactory.accountCache;
        /// <summary>
        /// 登录事务
        /// 0 登录成功
        /// 1 账号或密码不合法
        /// 2 账号不存在
        /// 3 密码错误
        /// 4 账号已登录
        /// </summary>
        public int LoginBiz(YToken token,string name,string passwd) {
            //账号或密码是否合法，不合法返回 1
            if (name == null || passwd == null) { return 1; }

            //是否存在该账号 不存在返回 2
            if (!accache.HasAccount(name)) { return 2; }

            //密码错误
            if (!accache.IsPasswd(name, passwd)) { return 3; }

            //账号已登录
            if (accache.IsOnline(name)) { return 4; }

            //通过全部验证，上线，并返回 0
            accache.Online(token, name);
            return 0;
        }

        /// <summary>
        /// 注册事务
        /// 0 注册成功
        /// 1 账号已存在
        /// 2 账号名称不符合规定
        /// 3 密码不符合规定
        /// </summary>
        public int ResBiz(YToken token,string name,string passwd) {



            if (accache.HasAccount(name)) { return 1; }

            accache.CreateAccount(name, passwd);

            return 0;
        }

        /// <summary>
        /// 断开连接
        /// </summary>
        public void CloseBiz(YToken token) {
            accache.Offline(token);
        }
    }
}
